<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

date_default_timezone_set("America/Lima");

class Reserva extends CI_Controller {

    public function index() {
        
    }

  
    
    public function reservar() {
        if (isset($this->session->userdata['nombre'])) {
            $this->sesion();
            $this->load->view('intranet/reserva_view');
            $this->load->view('estructura/footer');
        } else {
            $this->login();
        }
    }

    public function buscarHabitacionFecha() {
        if (isset($this->session->userdata['nombre'])) {
            if (isset($_POST['fecHab'])) {
                $this->sesion();
                $fecha = $_POST['fecHab'];
                $this->load->model("habitacion_model");
                $data['registros'] = $this->habitacion_model->Habitacion();
                $data['registros3'] = $this->habitacion_model->controlHabitacionRegistro();
                $data['registros2'] = $this->habitacion_model->controlHabitacionxFecha($fecha);
                $data['fecha'] = $_POST['fecHab'];
                $this->load->view('intranet/reserva_view', $data);
                $this->load->view('estructura/footer');
            } else {
                $this->reservar();
            }
        } else {
            $this->login();
        }
    }

    public function cancelarReserva($codigo) {
        if (isset($this->session->userdata['nombre'])) {
            if (isset($codigo)) {
                $this->load->model('reserva_model');
                $data = array(
                    'est_res' => 3
                );
                $this->reserva_model->CancelarReserva($codigo, $data);
                $this->fichaRegistro();
            }
        } else {
            $this->login();
        }
    }
    
     public function listarReservas() {
        if (isset($this->session->userdata['nombre'])) {
            $this->sesion();
            if (isset($_POST["fecha1"])) {
                $fec1 = $_POST["fecha1"];
                $fec2 = $_POST["fecha2"];
                $this->load->model("reserva_model");
                $data['reservas'] = $this->reserva_model->listReserva($fec1, $fec2);
                $this->load->view('intranet/listarReservas_view', $data);
            } else {
                $this->load->view('intranet/listarReservas_view');
            }
            $this->load->view('estructura/footer');
        } else {
            $this->login();
        }
    }

    public function fichaRegistro() {
        if (isset($this->session->userdata['nombre'])) {
            $this->sesion();
            $this->load->model("habitacion_model");
            $data['registros'] = $this->habitacion_model->Habitacion();
            $data['registros3'] = $this->habitacion_model->controlHabitacionRegistro();
            $data['registros2'] = $this->habitacion_model->controlHabitacion();
            $this->load->view('intranet/fichaRegistro_view', $data);
            $this->load->view('estructura/footer');
        } else {
            $this->login();
        }
    }

    public function habitacion($est) {
        $this->load->model("reserva_model");
        $data['registros'] = $this->reserva_model->habitaciones($est);
        echo json_encode($data);
    }

    public function RegistrarReserva() {
        if (isset($this->session->userdata['nombre'])) {

            if (isset($_POST['nom'], $_POST['id_habi'])) {
                if ($_POST['id_habi'] > 0) {
                    try {
                        $fechaHoy = date("Y/m/d");
                        $dataRes = array(
                            'hora' => $_POST['hora'],
                            'fec_entrada' => $fechaHoy,
                            'est_res' => 1,
                            'habitacion' => $_POST['id_habi'],
                            'fec_res' => $_POST['fecRese'],
                            'tel_res' => $_POST['tel'],
                            'nom_res' => $_POST['nom'],
                            'res_agen' => $_POST['agenV'],
                        );
                        if ($_POST['id_habi'] != null || $_POST['fecRese'] != null) {
                            $this->load->model('reserva_model');
                            $this->reserva_model->regReserva($dataRes);
                            $this->reservar();
                            $data['msjReserva'] = "Se registro con éxito la reserva";
                        } else {
                            $data['msjReserva'] = "No se pudo realizar el registro, por favor revise los datos.";
                        }
                    } catch (Exception $exc) {
                        $data['msjReserva'] = "No se pudo realizar el registro, por favor revise los datos.";
                    }
                } else {
                    $data['msjReserva'] = "No se pudo realizar la reserva, faltó seleccionar habitación";
                }
                $this->sesion();
                $this->load->view('intranet/reserva_view', $data);
                $this->load->view('estructura/footer');
            } else {
                $this->reservar();
            }
        } else {
            $this->login();
        }
    }

    public function Registrar() {
        if (isset($this->session->userdata['nombre'])) {
            if (isset($_POST['dni']) || isset($_POST['id_habi'])) {
                $this->form_validation->set_rules('dni', 'DNI', 'required|min_lenght[8]');
                if ($this->form_validation->run() == FALSE) {
                    $this->fichaRegistro();
                } else {
                    try {
                        $codigo = $_POST['cod'];
                        $dataCli = array(
                            'nombre' => $_POST['nom'],
                            'dni' => $_POST['dni'],
                            'ocupacion' => $_POST['ocupa'],
                            'fec_nac' => $_POST['fecNac'],
                            'lugar' => $_POST['lugar'],
                            'procedencia' => $_POST['procedencia'],
                            'razSocial' => $_POST['rzSocial'],
                            'ruc' => $_POST['ruc'],
                            'direccion' => $_POST['dir']
                        );
                        $this->load->model('cliente_model');
                        $codCli = $this->cliente_model->regMod($codigo, $dataCli);
                        if ($codigo == "") {
                            $cod = $codCli{0}['codCli'];
                        } else {
                            $cod = $codCli;
                        }
                        $dataRes = array(
                            'hora' => $_POST['hora'],
                            'habitacion' => $_POST['id_habi'],
                            'fec_ing' => $_POST['fecIng'],
                            'cliente' => $cod,
                            'personal' => $this->session->userdata['codigo'],
                            'est_reg' => 1,
                            'monto' => $_POST['monto'],
                            'obs' => $_POST['obs']
                        );

                        $this->load->model('registro_model');
                        $this->registro_model->regRegistro($dataRes,$_POST['monto']);

                        $data['msj'] = "Registro realizado correctamente.";
                    } catch (Exception $exc) {
                        $data['msj'] = "No se pudo realizar el registro, por favor revise los datos.";
                    }
                    $this->sesion();
                    $this->load->model("habitacion_model");
                    $data['registros'] = $this->habitacion_model->Habitacion();
                    $data['registros2'] = $this->habitacion_model->controlHabitacion();
                    $data['registros3'] = $this->habitacion_model->controlHabitacionRegistro();
                    $this->load->view('intranet/fichaRegistro_view', $data);
                    $this->load->view('estructura/footer');
                }
            } else {
                $this->fichaRegistro();
            }
        } else {
            $this->login();
        }
    }

    public function clientesxDNI($dni) {
        $this->load->model('cliente_model');
        if ($this->cliente_model->BuscarxDNI($dni) != null) {
            $data['registros'] = $this->cliente_model->BuscarxDNI($dni);
            echo json_encode($data);
        } else {
            echo json_encode(0);
        }
    }

    public function clientesRegistrados($nombre) {
        if (isset($this->session->userdata['nombre'])) {
            $this->load->model("reserva_model");
            $data['registros'] = $this->reserva_model->clientesRegistrados($nombre);
            if ($nombre == "nombre") {
                $this->sesion("");
                $this->load->view('intranet/clientesRegistrados_view', $data);
                $this->load->view('estructura/footer');
            } else {
                echo json_encode($data);
            }
        } else {
            $this->login();
        }
    }

    public function detalleRegistro($id) {
        $this->load->model("reserva_model");
        $this->load->model("registro_model");
        $data['registros'] = $this->reserva_model->detalleRegistro($id);
        $data['monto'] = $this->registro_model->monto($id);
        echo json_encode($data);
    }

    public function registrarDetalleReg() {
        $fecha = date("Y/m/d");
        $hh = date("H");
        if ($hh < 12)
            $mer = "a.m.";
        else
            $mer = "p.m.";
        $hora = date("h:i:s") . " $mer";
        $data = array(
            'registro' => $_POST["registro"],
            'producto' => $_POST["producto"],
            'cantidad' => $_POST["cantidad"],
            'sub_total' => $_POST["subTotal"],
            'fechaDet' => $fecha . " " . $hora
        );
        $this->load->model('reserva_model');
        $valor = $this->reserva_model->regDetalle($data);

        $cod = $valor{0}['codDet'];

        echo json_encode($cod);
    }

    public function eliminarProdDet($cod) {
        $this->load->model('reserva_model');
        try {
            $this->reserva_model->eliminarProdDetalle($cod);
            $valor = true;
        } catch (Exception $exc) {
            $valor = null;
        }
        echo json_encode($valor);
    }

    public function sesion() {
        $data['nom'] = $this->session->userdata['nombre'];
        $data['ape'] = $this->session->userdata['apellido'];
        $data['ruta'] = "";
        $data['css'] = array('inicio' => '', 'mantenedor' => '', 'reserva' => 'active open');
        $this->load->view('estructura/head', $data);
    }

    public function login() {
        $this->load->view('login');
    }

    public function cerrarRegistro($id) {
        if (isset($this->session->userdata['nombre'])) {
            try {
                if (isset($id)) {
                    $this->load->model("reserva_model");
                    $data = array(
                        'est_reg' => 0
                    );
                    $this->reserva_model->finalizar($id, $data);
                    $this->clientesRegistrados("nombre");
                    $valor = true;
                }
            } catch (Exception $exc) {
                $valor = false;
            }
        } else {
            $this->login();
        }
    }

}